package com.jeegit.ecms.domain;

import java.math.BigDecimal;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jeegit.common.annotation.Excel;
import com.jeegit.common.core.domain.BaseEntity;
import com.jeegit.ecms.utils.ECMSUtils;

/**
 * 录播课程对象 cms_video
 * 
 * @author jeegit
 * @date 2022-06-30
 */
public class CmsVideo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 栏目编码 */
    @Excel(name = "栏目编码")
    private Long categoryId;
    
    /**
     * 分类名称
     */
    private String categoryName;

    /** 标题 */
    @Excel(name = "标题")
    private String title;

    /** 标签 */
    @Excel(name = "标签")
    private String tags;

    /** 授课讲师 */
    @Excel(name = "授课讲师")
    private String videoTeacherIds;
    /** 授课讲师姓名 */
    private String videoTeacherName;

    /** 模块类型 */
    @Excel(name = "模块类型")
    private String dictModuleType;

    /** 推荐位 */
    @Excel(name = "推荐位")
    private String dictPostPositions;

    /** 展示策略（1 免费 2  30% 内容  3 收费） */
    @Excel(name = "展示策略", readConverterExp = "1=,免=费,2=,3=0%,内=容,3=,收=费")
    private String dictShowStrategy;

    /** 会员策略（vip0 vip1 vip2 vip3 vip4） */
    @Excel(name = "会员策略", readConverterExp = "v=ip0,v=ip1,v=ip2,v=ip3,v=ip4")
    private String dictVipStrategy;

    /** 是否允许套餐 */
    @Excel(name = "是否允许套餐")
    private String dictIsPackage;

    /** 是否允许优惠券 */
    @Excel(name = "是否允许优惠券")
    private String dictIsCoupon;

    /** 市场价 */
    @Excel(name = "市场价")
    private BigDecimal maxPrice;

    /** 销售价 */
    @Excel(name = "销售价")
    private BigDecimal price;

    /** 销售数量 */
    @Excel(name = "销售数量")
    private Long saleNumber;

    /** 外部链接 */
    @Excel(name = "外部链接")
    private String href;

    /** 标题颜色 */
    @Excel(name = "标题颜色")
    private String color;

    /** 封面 */
    @Excel(name = "封面")
    private String image;

    /** 视频地址 */
    @Excel(name = "视频地址")
    private String video;

    /** 视频时长 */
    @Excel(name = "视频时长")
    private String videoTimes;

    /** 课程资料 */
    @Excel(name = "课程资料")
    private String videoAttachment;

    /** 关键字 */
    @Excel(name = "关键字")
    private String keywords;

    /** 描述 */
    @Excel(name = "描述")
    private String description;

    /** 点击数 */
    @Excel(name = "点击数")
    private Long hits;

    /** 收藏数 */
    @Excel(name = "收藏数")
    private Long collectionCount;

    /** 字数（不包含html） */
    @Excel(name = "字数", readConverterExp = "不=包含html")
    private Long wordCount;

    /** 内容视图 */
    @Excel(name = "内容视图")
    private String dictContentView;

    /** 视图配置 */
    @Excel(name = "视图配置")
    private String dictViewConfig;

    /** 排序 */
    @Excel(name = "排序")
    private BigDecimal sort;

    /** 状态（0正常 1删除 2停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=删除,2=停用")
    private String status;

    private List<CmsVideoChapter> listCmsVideoChapter;
    
    
    
    private CmsVideoData cmsVideoData;
    
    
    public List<CmsVideoTeacher>  listTeacher;
    public List<CmsVideoTeacher> getListTeacher() {
		return listTeacher;
	}

	public void setListTeacher(List<CmsVideoTeacher> listTeacher) {
		this.listTeacher = listTeacher;
	}
	
	public static List<CmsVideoTeacher> initListTeacher(CmsVideo cmsVideo){
		if (cmsVideo==null) {
			cmsVideo=new CmsVideo();
		}
		List<CmsVideoTeacher> listTeacher=cmsVideo.getListTeacher();
		if (listTeacher==null||listTeacher.size()<=0) {
    		listTeacher=ECMSUtils.getTeacherList(new CmsVideoTeacher());
		}
		cmsVideo.setListTeacher(listTeacher);
		return listTeacher;
	}

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCategoryId(Long categoryId) 
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() 
    {
        return categoryId;
    }
    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }
    public void setTags(String tags) 
    {
        this.tags = tags;
    }

    public String getTags() 
    {
        return tags;
    }
    public void setVideoTeacherIds(String videoTeacherIds) 
    {
        this.videoTeacherIds = videoTeacherIds;
    }

    public String getVideoTeacherIds() 
    {
        return videoTeacherIds;
    }
    public void setDictModuleType(String dictModuleType) 
    {
        this.dictModuleType = dictModuleType;
    }

    public String getDictModuleType() 
    {
        return dictModuleType;
    }
    public void setDictPostPositions(String dictPostPositions) 
    {
        this.dictPostPositions = dictPostPositions;
    }

    public String getDictPostPositions() 
    {
        return dictPostPositions;
    }
    public void setDictShowStrategy(String dictShowStrategy) 
    {
        this.dictShowStrategy = dictShowStrategy;
    }

    public String getDictShowStrategy() 
    {
        return dictShowStrategy;
    }
    public void setDictVipStrategy(String dictVipStrategy) 
    {
        this.dictVipStrategy = dictVipStrategy;
    }

    public String getDictVipStrategy() 
    {
        return dictVipStrategy;
    }
    public void setDictIsPackage(String dictIsPackage) 
    {
        this.dictIsPackage = dictIsPackage;
    }

    public String getDictIsPackage() 
    {
        return dictIsPackage;
    }
    public void setDictIsCoupon(String dictIsCoupon) 
    {
        this.dictIsCoupon = dictIsCoupon;
    }

    public String getDictIsCoupon() 
    {
        return dictIsCoupon;
    }
    public void setMaxPrice(BigDecimal maxPrice) 
    {
        this.maxPrice = maxPrice;
    }

    public BigDecimal getMaxPrice() 
    {
        return maxPrice;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setSaleNumber(Long saleNumber) 
    {
        this.saleNumber = saleNumber;
    }

    public Long getSaleNumber() 
    {
        return saleNumber;
    }
    public void setHref(String href) 
    {
        this.href = href;
    }

    public String getHref() 
    {
        return href;
    }
    public void setColor(String color) 
    {
        this.color = color;
    }

    public String getColor() 
    {
        return color;
    }
    public void setImage(String image) 
    {
        this.image = image;
    }

    public String getImage() 
    {
        return image;
    }
    public void setVideo(String video) 
    {
        this.video = video;
    }

    public String getVideo() 
    {
        return video;
    }
    public void setVideoTimes(String videoTimes) 
    {
        this.videoTimes = videoTimes;
    }

    public String getVideoTimes() 
    {
        return videoTimes;
    }
    public void setVideoAttachment(String videoAttachment) 
    {
        this.videoAttachment = videoAttachment;
    }

    public String getVideoAttachment() 
    {
        return videoAttachment;
    }
    public void setKeywords(String keywords) 
    {
        this.keywords = keywords;
    }

    public String getKeywords() 
    {
        return keywords;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setHits(Long hits) 
    {
        this.hits = hits;
    }

    public Long getHits() 
    {
        return hits;
    }
    public void setCollectionCount(Long collectionCount) 
    {
        this.collectionCount = collectionCount;
    }

    public Long getCollectionCount() 
    {
        return collectionCount;
    }
    public void setWordCount(Long wordCount) 
    {
        this.wordCount = wordCount;
    }

    public Long getWordCount() 
    {
        return wordCount;
    }
    public void setDictContentView(String dictContentView) 
    {
        this.dictContentView = dictContentView;
    }

    public String getDictContentView() 
    {
        return dictContentView;
    }
    public void setDictViewConfig(String dictViewConfig) 
    {
        this.dictViewConfig = dictViewConfig;
    }

    public String getDictViewConfig() 
    {
        return dictViewConfig;
    }
    public void setSort(BigDecimal sort) 
    {
        this.sort = sort;
    }

    public BigDecimal getSort() 
    {
        return sort;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    
    
    
    
    
    

    public List<CmsVideoChapter> getListCmsVideoChapter() {
        return listCmsVideoChapter;
    }

    public void setListCmsVideoChapter(List<CmsVideoChapter> listCmsVideoChapter) {
        this.listCmsVideoChapter = listCmsVideoChapter;
    }

    public String getCategoryName() {
		return categoryName;
	}

	public void setCategoryName(String categoryName) {
		this.categoryName = categoryName;
	}

	
	
	
	
	
	
	
	
	
	
	
	
	
	public CmsVideoData getCmsVideoData() {
	    return cmsVideoData;
	}

	public void setCmsVideoData(CmsVideoData cmsVideoData) {
	    this.cmsVideoData = cmsVideoData;
	}

	public String getVideoTeacherName() {
		return videoTeacherName;
	}

	public void setVideoTeacherName(String videoTeacherName) {
		this.videoTeacherName = videoTeacherName;
	}

	@Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("categoryId", getCategoryId())
            .append("title", getTitle())
            .append("tags", getTags())
            .append("videoTeacherIds", getVideoTeacherIds())
            .append("dictModuleType", getDictModuleType())
            .append("dictPostPositions", getDictPostPositions())
            .append("dictShowStrategy", getDictShowStrategy())
            .append("dictVipStrategy", getDictVipStrategy())
            .append("dictIsPackage", getDictIsPackage())
            .append("dictIsCoupon", getDictIsCoupon())
            .append("maxPrice", getMaxPrice())
            .append("price", getPrice())
            .append("saleNumber", getSaleNumber())
            .append("href", getHref())
            .append("color", getColor())
            .append("image", getImage())
            .append("video", getVideo())
            .append("videoTimes", getVideoTimes())
            .append("videoAttachment", getVideoAttachment())
            .append("keywords", getKeywords())
            .append("description", getDescription())
            .append("hits", getHits())
            .append("collectionCount", getCollectionCount())
            .append("wordCount", getWordCount())
            .append("dictContentView", getDictContentView())
            .append("dictViewConfig", getDictViewConfig())
            .append("sort", getSort())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
